跳到主要内容

[toc]

python基础七 基础数据类型-集合

1.集合

1.1 含义

集合是python中的一种数据类型

1.2 关键字

set

1.3 定义

空集合	set()

#定义集合示例
s = {1,2,3}

1.4 特点

1.去重,集合中的元素都是唯一的

2.集合关系

3.集合无序、可变、可迭代

1.5 集合使用示例

1.集合去重
lst = [1,2,3,1,4]
print (set(lst))
{1, 2, 3, 4}

1.6 集合面试题示例

一行代码去重 
⚠️需要注意的是原先的数据类型是什么,在做完去重处理后需要转换为原先的数据类型

lst = [1,2,3,5,6,1,5,6,7,8,9,33,1,2,33,66]
print (set(lst)) //不完美做法,没有将数据类型转换为原来的列表

print (list(set(lst)))
[1, 2, 3, 33, 5, 6, 7, 8, 9, 66]

1.7 集合核心说明 ⚠️集合就是一个没有值的字典

⚠️集合就是一个没有值的字典


为什么说集合是一个没有值的字典???
字典的值:任意
字典的键:不可变、可哈希

"""示例说明,列表是可变的
如果集合中能打印列表,那么说明集合中的元素相当于字典中的值,也就是集合是一个没有键的字典
如果集合中不能打印列表,那么说明集合中的元素相当于字典中的键,也就是集合是一个没有值的字典
"""

#打印一个可变类型
s = {1,2,[1,2,3]}
print (s)
TypeError: unhashable type: 'list' //打印结果报错列表不可哈希


#打印一个不可变类型
s = {1,2,(1,2,3)}
print (s)
{1, 2, (1, 2, 3)}

1.8 集合的增删改查

1.8.1 集合的增

#方式1	update
s = set()
s.update('play')
print (s)
{'l', 'a', 'p', 'y'} //集合中的update会把增加的内容迭代添加

#方式2 add
s = set()
s.add('play') //add在集合中是常用的
print (s)
{'play'}

1.8.2 集合的删

#方式1	pop 随机删除
s = {1,2,3,'呵呵',5}
s.pop() //⚠️集合中的pop是随机删除
print (s)
{2, 3, 5, '呵呵'}
{1, 2, 3, 5}

#方式2 remove 通过元素名称删除
s = {1,2,3,'呵呵',5}
s.remove("呵呵")
print (s)
{1, 2, 3, 5}

#方式3 clear
s = {1,2,3,'呵呵',5}
s.clear()
print (s)
set() //⚠️ 空集合为set()

1.8.3 集合的改

1.先删后加
2.转换数据类型进行修改

1.8.4 集合的查

#for循环
s = {1,2,3,'呵呵',5}
for i in s:
print (i)
1
2
3
5
呵呵

1.9 集合关系

1.9.1 集合并集 | == or

a = {'a','b','c','d','e'}
b = {'a','c','e','f'}
print (a | b)
{'b', 'a', 'c', 'f', 'd', 'e'}

1.9.2 集合交集 & == and

a = {'a','b','c','d','e'}
b = {'a','c','e','f'}
print (a & b)
{'a', 'c', 'e'}

1.9.3 集合差集 -

#差集就是用自身的元素减去对方的元素,相同的元素消除,但是自身没有的不会出现
a = {'a','b','c','d','e'}
b = {'a','c','e','f'}
print (a - b)
{'b', 'd'}

1.9.4 集合补集、反差集、对称集 ^

  #补集就是用自身的元素减去对方的元素,相同的元素消除,同时自身没有的元素会出现
a = {'a','b','c','d','e'}
b = {'a','c','e','f'}
print (a ^ b)
{'b', 'd', 'f'}

1.9.5 超集 就是父集 >

a = {'a','b','c','d','e'}
b = {'a','c','e'}
print (a > b) //判断a是否是b的父集
True

1.9.6 子集 <

  a = {'a','b','c','d','e'}
b = {'a','c','e'}
print (b < a) //判断b是否是a的子集
True